/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

/**
 *
 * @author Edward
 */
public class loginBD {
    Connection conexion;
    ResultSet consulta;
    
    public loginBD() {
    }


    public void conectar() {
        try {
            Class.forName("org.postgresql.Driver");
            conexion = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/sistemaEvaluaciones", "postgres", "admin");
            System.out.println("Se conecto a la base de datos");
        } catch (Exception e) {
            System.out.println("No se pudo conectar a la base de datos " + e);
        }
    }


    public void desconectar() {
        try {
            consulta.close();
            conexion.close();
            System.out.println("Se desconecto correctamente de la base de datos");
        } catch (Exception e) {
            System.out.println("No se pudo desconectar de la base de datos " + e);
        }
    }
    
    public boolean validarDocente(int idDocente, String clave) {
        try {
            conectar();
            String sql = "select * from tbl_docentes where cedula = '" + idDocente + "'";
            String VerificarClave = "";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                VerificarClave = consulta.getObject(consulta.getMetaData().getColumnLabel(4)).toString();
            }
            if (VerificarClave.equals(clave)) {
                desconectar();
                return true;
            } else {
                desconectar();
                return false;
            }
        } catch (Exception e) {
            System.out.println("Error al intentar validar el docente: " + e);
        }
        return false;
    }
    
    public boolean validarEstudiante(int idEstudiante, String clave) {
        try {
            conectar();
            String sql = "select * from tbl_estudiantes where id = '" + idEstudiante + "'";
            String VerificarClave = "";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                VerificarClave = consulta.getObject(consulta.getMetaData().getColumnLabel(4)).toString();
            }
            if (VerificarClave.equals(clave)) {
                desconectar();
                return true;
            } else {
                desconectar();
                return false;
            }
        } catch (Exception e) {
            System.out.println("Error al intentar validar el estudiante: " + e);
        }
        return false;
    }
    
     public boolean validarSecretaria(int idSecretaria, String clave) {
        try {
            conectar();
            String sql = "select * from tbl_secretaria where cedula = '" + idSecretaria + "'";
            String VerificarClave = "";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                VerificarClave = consulta.getObject(consulta.getMetaData().getColumnLabel(4)).toString();
            }
            if (VerificarClave.equals(clave)) {
                desconectar();
                return true;
            } else {
                desconectar();
                return false;
            }
        } catch (Exception e) {
            System.out.println("Error al intentar validar el estudiante: " + e);
        }
        return false;
    }
     
    
      
      public Estudiante consultarEstudiante(int idEstudiante) {
        Estudiante estudiante = new Estudiante();
        try {
            conectar();
            String sql = "select * from tbl_estudiantes where id = '" + idEstudiante + "'";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                estudiante.setId(idEstudiante);
                String nombres = consulta.getObject(consulta.getMetaData().getColumnLabel(2)).toString();
                String apellidos = consulta.getObject(consulta.getMetaData().getColumnLabel(3)).toString();
                estudiante.setNombres(nombres);
                estudiante.setApellidos(apellidos);
            }
            desconectar();
        } catch (Exception e) {
            System.out.println("Error al intentar consultar un estudiante");
        }
        return estudiante;
    }
      
      
      public Docente consultarDocente(int cedDocente) {
        Docente docente = new Docente();
        try {
            conectar();
            String sql = "select * from tbl_docentes where cedula = '" + cedDocente + "'";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                docente.setCedula(cedDocente);
                String nombres = consulta.getObject(consulta.getMetaData().getColumnLabel(2)).toString();
                String apellido = consulta.getObject(consulta.getMetaData().getColumnLabel(3)).toString();
                docente.setNombre(nombres);
                docente.setApellido(apellido);
            }
            desconectar();
        } catch (Exception e) {
            System.out.println("Error al intentar consultar un docente");
        }
        return docente;
    }
      
      
      public Secretaria consultarSecretaria(int cedsecretaria) {
         Secretaria secretaria= new Secretaria();
        try {
            conectar();
            String sql = "select * from tbl_secretaria where cedula = '" + cedsecretaria + "'";
            consulta = conexion.createStatement().executeQuery(sql);
            while (consulta.next()) {
                secretaria.setCedula(cedsecretaria);
                String nombres = consulta.getObject(consulta.getMetaData().getColumnLabel(2)).toString();
                String apellido = consulta.getObject(consulta.getMetaData().getColumnLabel(3)).toString();
                secretaria.setNombre(nombres);
                secretaria.setApellido(apellido);
            }
            desconectar();
        } catch (Exception e) {
            System.out.println("Error al intentar consultar un docente");
        }
        return secretaria;
    }
}
